package report

type PrimaryGrade struct {
	Date              string         `json:"date"`
	SchoolInfo        schoolInfo     `json:"SchoolInfo"`
	GradeInfo         gradeInfo      `json:"GradeInfo"`
	StudentNum        studentNum     `json:"StudentNum"`
	StudentInfo       studentInfo    `json:"StudentInfo"`
	GradeLevelInfo    gradeLevelInfo `json:"GradeLevelInfo"`
	EachScoreInfo     eachScoreInfo  `json:"EachScoreInfo"`
	Height            item1          `json:"Shengao"`
	Weight            item1          `json:"Tizhong"`
	BodyMassIndex     item5          `json:"BMI"`
	BodyFat           item6          `json:"Tizhifang"`
	VitalCapacity     item7          `json:"Feihuoliang"`
	FiftyMeter        item7          `json:"Fiftymeter"`
	SitAndReach       item7          `json:"Zuolitiqianqu"`
	OneMinuteSkipping item7          `json:"Yifenzhongtiao"`
	OneMinuteSitUps   item7          `json:"Yangwoqizuo"`
	ShuttleRun        item7          `json:"Fiftymeter8"`
	Grip              item7          `json:"Woli"`
	ReactionSpeed     item7          `json:"Fanyingsudu"`
	VerticalJump      item7          `json:"Yuandizhongtiao"`
	BalanceAbility    item7          `json:"Pinghengnengli"`
}

type HighGrade struct {
	Date             string         `json:"date"`
	SchoolInfo       schoolInfo     `json:"SchoolInfo"`
	GradeInfo        highGradeInfo  `json:"GradeInfo"`
	StudentNum       studentNum     `json:"StudentNum"`
	StudentInfo      studentInfo    `json:"StudentInfo"`
	GradeLevelInfo   gradeLevelInfo `json:"GradeLevelInfo"`
	EachScoreInfo    eachScoreInfo  `json:"EachScoreInfo"`
	Height           item1          `json:"Shengao"`
	Weight           item1          `json:"Tizhong"`
	BodyMassIndex    item5          `json:"BMI"`
	BodyFat          item6          `json:"Tizhifang"`
	VitalCapacity    item7          `json:"Feihuoliang"`
	FiftyMeter       item7          `json:"Fiftymeter"`
	SitAndReach      item7          `json:"Zuolitiqianqu"`
	StandingLongJump item7          `json:"Lidingtiaoyuan"`
	OneMinuteSitUps  item7          `json:"Yangwoqizuo"`
	EnduranceRun     item7          `json:"Naili"`
	Grip             item7          `json:"Woli"`
	ReactionSpeed    item7          `json:"Fanyingsudu"`
	VerticalJump     item7          `json:"Yuandizhongtiao"`
	BalanceAbility   item7          `json:"Pinghengnengli"`
}

type gradeInfo struct {
	Grade                    string    `json:"Grade"`
	Score                    float64   `json:"Score"`
	HasShuttleRun            bool      `json:"HasFiftyMeter8"`
	HasVerticalJump          bool      `json:"HasYuandizongtiao"`
	HasOneMinuteSitUps       bool      `json:"HasOneMinuteSitUps"`
	Level                    string    `json:"Level"`
	Classes                  []string  `json:"Classes"`
	ClassesScore             []float64 `json:"ClassesScore"`
	ClassesStandardDeviation []float64 `json:"ClassesStandardDeviation"`
}

type highGradeInfo struct {
	Grade                    string    `json:"Grade"`
	Score                    float64   `json:"Score"`
	Level                    string    `json:"Level"`
	Classes                  []string  `json:"Classes"`
	ClassesScore             []float64 `json:"ClassesScore"`
	ClassesStandardDeviation []float64 `json:"ClassesStandardDeviation"`
}

type studentInfo struct {
	IndexName []string              `json:"IndexName"`
	Items     []string              `json:"Items"`
	EachInfo  []studentInfoEachInfo `json:"EachInfo"`
}

type studentInfoEachInfo struct {
	StudentNum    int64                              `json:"StudentNum"`
	StudentScores []studentInfoEachInfoStudentScores `json:"StudentScores"`
}

type studentInfoEachInfoStudentScores struct {
	Number string    `json:"Number"`
	Name   string    `json:"Name"`
	Sex    string    `json:"Sex"`
	Scores []float64 `json:"Scores"`
}

type gradeLevelInfo struct {
	Boy  []float64 `json:"Boy"`
	Girl []float64 `json:"Girl"`
	Avg  []float64 `json:"Avg"`
}

type item5 struct {
	IndexName []string        `json:"IndexName"`
	EachInfo  []item5EachInfo `json:"EachInfo"`
}

type item5EachInfo struct {
	Boy  item5EachInfoDetail `json:"Boy"`
	Girl item5EachInfoDetail `json:"Girl"`
	Avg  item5EachInfoDetail `json:"Avg"`
}

type item5EachInfoDetail struct {
	Result                  float64                       `json:"Result"`
	ResultStandardDeviation float64                       `json:"ResultStandardDeviation"`
	Score                   float64                       `json:"Score"`
	ScoreStandardDeviation  float64                       `json:"ScoreStandardDeviation"`
	Max                     float64                       `json:"Max"`
	Min                     float64                       `json:"Min"`
	Percentage              item5EachInfoDetailPercentage `json:"Percentage"`
}

type item5EachInfoDetailPercentage struct {
	Failed    float64 `json:"Bujige"`
	Pass      float64 `json:"Jige"`
	Good      float64 `json:"Lianghao"`
	Excellent float64 `json:"Youxiu"`
	Qualified float64 `json:"Hege"`
}

type item6 struct {
	IndexName []string        `json:"IndexName"`
	EachInfo  []item6EachInfo `json:"EachInfo"`
}

type item6EachInfo struct {
	Boy  item6EachInfoDetail `json:"Boy"`
	Girl item6EachInfoDetail `json:"Girl"`
	Avg  item6EachInfoDetail `json:"Avg"`
}

type item6EachInfoDetail struct {
	Result                  float64 `json:"Result"`
	ResultStandardDeviation float64 `json:"ResultStandardDeviation"`
	Standard                float64 `json:"Biaozhun"`
	Excess                  float64 `json:"Chaobiao"`
	LowStandard             float64 `json:"Dibiao"`
}

type item7 struct {
	IndexName []string        `json:"IndexName"`
	EachInfo  []item7EachInfo `json:"EachInfo"`
}

type item7EachInfo struct {
	Boy  item7EachInfoDetail `json:"Boy"`
	Girl item7EachInfoDetail `json:"Girl"`
	Avg  item7EachInfoDetail `json:"Avg"`
}

type item7EachInfoDetail struct {
	Result                  float64                       `json:"Result"`
	ResultStandardDeviation float64                       `json:"ResultStandardDeviation"`
	Score                   float64                       `json:"Score"`
	ScoreStandardDeviation  float64                       `json:"ScoreStandardDeviation"`
	Nums                    item7EachInfoDetailNums       `json:"Nums"`
	Percentage              item7EachInfoDetailPercentage `json:"Percentage"`
}

type item7EachInfoDetailNums struct {
	Failed    int64 `json:"Bujige"`
	Pass      int64 `json:"Jige"`
	Good      int64 `json:"Lianghao"`
	Excellent int64 `json:"Youxiu"`
	Qualified int64 `json:"Hege"`
}

type item7EachInfoDetailPercentage struct {
	Failed    float64 `json:"Bujige"`
	Pass      float64 `json:"Jige"`
	Good      float64 `json:"Lianghao"`
	Excellent float64 `json:"Youxiu"`
	Qualified float64 `json:"Hege"`
}
